package studio.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import studio.excepcion.DAOExcepcion;
import studio.modelo.Cliente;
import studio.util.ConexionBD;

public class ClienteDAO extends BaseDAO  {
	public void insertar(Cliente vo) throws DAOExcepcion {
		System.out.println("ClienteDAO: insertar(Cliente vo)");
		String query = "INSERT INTO Usuario(docIdentidad, nombre, email,fechaNacimiento,clave,tipousuario_idTipoUsuario) VALUES (?,?,?,?,?,?)";
		Connection con = null;
		PreparedStatement stmt = null;
		try {
			con = ConexionBD.obtenerConexion();
			stmt = con.prepareStatement(query);
			//stmt.setInt(1, vo.getIdUsuario());
			stmt.setString(1, vo.getDocIdentidad());
			stmt.setString(2, vo.getNombres());
			stmt.setString(3, vo.geteMail());
			stmt.setString(4, vo.getFechaNacimiento());
			stmt.setString(5, vo.getClaveIngreso());
			stmt.setInt(6, vo.getTipo());
			int i = stmt.executeUpdate();
			if (i != 1) {
				throw new SQLException("No se pudo insertar");
			}
			else
			{
				System.out.println("registrado Ok");
			}
		} catch (SQLException e) {
			System.err.println(e.getMessage());
			throw new DAOExcepcion(e.getMessage());
		} finally {
			this.cerrarStatement(stmt);
			this.cerrarConexion(con);
		}
	}

	/*public Cliente obtenerCliente(String ClieIdent) throws DAOExcepcion {
		System.out.println("ClienteDAO: obtener(String ClieIdent)");
		Cliente vo = new Cliente();
		Connection con = null;
		PreparedStatement stmt = null;
		ResultSet rs = null;
		try {
			String query = "select idUsuario, docIdentidad,nombre,email,fechaNacimiento,clave,Tipousuario_idTipoUsuario from Usuario where docIdentidad=?";
			con = ConexionBD.obtenerConexion();
			stmt = con.prepareStatement(query);
			stmt.setString(1, ClieIdent);
			System.out.println(ClieIdent);
			rs = stmt.executeQuery();
			if (rs.next()) {
				vo.setIdUsuario(rs.getInt(1));
				vo.setDocIdentidad(rs.getString(2));
				vo.setNombres(rs.getString(3));
				vo.seteMail(rs.getString(4));
				vo.setFechaNacimiento(rs.getString(5));
				vo.setClaveIngreso(rs.getString(6));
				vo.setTipo(rs.getInt(6));
			}
		} catch (SQLException e) {
			System.err.println(e.getMessage());
			throw new DAOExcepcion(e.getMessage());
		} finally {
			this.cerrarResultSet(rs);
			this.cerrarStatement(stmt);
			this.cerrarConexion(con);
		}
		return vo;
	}
*/
	public boolean obtenerCliente(String ClieIdent) throws DAOExcepcion 
	{
		boolean valor=true;
		System.out.println("Cliente : Valida DocIdentidad Duplicado o Email Duplicado");
		Connection con = null;
		PreparedStatement stmt = null;
		ResultSet rs = null;
		try {
			con = ConexionBD.obtenerConexion();
			String query = "select count(*) as DocIdentidad from usuario where DocIdentidad=? or eMail=?";
			stmt = con.prepareStatement(query);
			//System.out.println(objSala.getNombreSala());
			stmt.setString(1,ClieIdent);
			stmt.setString(2,ClieIdent);
			rs = stmt.executeQuery();
			rs.first();
			int nrodocid=rs.getInt("DocIdentidad");
			System.out.println(nrodocid);
			if (nrodocid>0)
			{
				valor=false;
			}
			else
			{
				valor=true;
			}
			
		} catch (SQLException e) 
		{
			System.err.println(e.getMessage());
			throw new DAOExcepcion(e.getMessage());
		}
		finally {
			this.cerrarStatement(stmt);
			this.cerrarConexion(con);
		}
		return valor;
	}
	
}
